#include <iostream>
#include <string>
#include <ctime>
using namespace std;

// 学生的结构体
struct Student
{
    // 姓名
    string name;

    // 分数
    int score;
};

// 老师的结构体定义
struct Teacher
{
    // 姓名
    string name;
    // 学生数组
    Student sArray[5];
};

// 给老师和学生赋值的函数
void allocateSpace(Teacher tArray[], int len)
{
    string nameSeed = "ABCDEF";

    for (int i = 0; i < len; i++)
    {
        // 生成老师姓名
        tArray[i].name = "Teacher_";
        tArray[i].name += nameSeed[i];

        for (int j = 0; j < 5; j++)
        {
            // 生成学生姓名
            tArray[i].sArray[j].name = "Student_";
            tArray[i].sArray[j].name += nameSeed[j];

            // 随机生成分数 -- 0～100
            int random = rand() % 61 + 40;

            // 为学生评分
            tArray[i].sArray[j].score = random;
        }
    }
}

// 打印所有信息的函数
void printInfo(Teacher tArray[], int len)
{
    for (int i = 0; i < len; i++)
    {
        cout << "老师的姓名为：" << tArray[i].name << endl;

        for (int j = 0; j < 5; j++)
        {
            cout << "\t学生姓名：" << tArray[i].sArray[j].name
                 << "   得分为：" << tArray[i].sArray[j].score << endl;
        }
    }
}

int main()
{
    // 随机数种子
    srand((unsigned int)time(NULL));

    // 创建3名老师的数组
    Teacher tArray[3];
    int len = sizeof(tArray) / sizeof(tArray[0]);

    // 通过函数给三名老师赋值，并给其所带学生也赋值
    allocateSpace(tArray, len);

    // 打印所有老师和学生的信息
    printInfo(tArray, len);

    return 0;
}